/*
CREDITS:

Sprites:
Rip - AEoD Team
Original - Epic Games (Unreal)

Sounds:
Up, health racking up - Epic Games (UT99)
Rev up, fire, stop down on both fire modes - Valve (Left 4 Dead)
AddLoop - Call of Duty (Infinity Ward)
Additional firing clip - ? (I got those from FPSBanana before it ker-crashed and turned into Gamebanana, soooo... couldn't find them again.)
*/

//Triggers
ACTOR OverwhelmingHealing : Inventory { Inventory.MaxAmount 1 }
ACTOR WallstormActive : Inventory { Inventory.MaxAmount 1 }

ACTOR PowerOverwhelming : Weapon 24505
{
//$Category Weapons
//$Title Power Overwhelming
//$Sprite NGU3X0
Tag "Power Overwhelming"
Inventory.PickupSound "misc/w_pkup"
Inventory.PickupMessage "You got the ''Power Overwhelming'' minigun! We need focus... to ERADICATE! (4)"
Obituary "%k power overwhelmed %o with heavy lead."
weapon.UpSound "Weapons/PowerOverwhelmingUp"
Weapon.SelectionOrder 5
Weapon.AmmoType "Boolet"
Weapon.AmmoGive 100
Weapon.AmmoUse 1
Weapon.AmmoType2 "Boolet"
Weapon.AmmoGive2 0
Weapon.AmmoUse2 1
Weapon.Kickback 50
Weapon.SlotNumber 4
Weapon.BobStyle InverseSmooth
Weapon.BobSpeed 1.2
Weapon.BobRangeY 0.6
Weapon.BobRangeX 1.2
Scale 0.9
States
{
Spawn:
	NGU3 X -1
	Stop
Ready:
	NGU3 A 1 A_WeaponReady(WRF_ALLOWRELOAD|WRF_ALLOWZOOM)
	Loop
Deselect:
	NGU3 A 0 A_StopSoundEx("SoundSlot5")
	NGU3 A 0 A_StopSoundEx("SoundSlot6")
	NGU3 A 1 A_Lower
	NGU3 A 0 A_Lower
	Goto Deselect+1
Select:
	NGU3 A 1 A_Raise
	TNT1 A 0 A_Raise
	Loop
	
//Primary
Fire:
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStart",5)
	NGU3 BCD 3 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EF 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 GH 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGHEFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
Hold:
	TNT1 A 0 A_TakeInventory("OverwhelmingHealing",1)
	TNT1 A 0 A_JumpIfInventory("CaliberUpgrade",1,"CaliberHold")
	TNT1 A 0 A_PlaySound("",1,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingLoop",5,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAddLoop",6,0.6,1)

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
        TNT1 A 0 A_ZoomFactor(0.955)

	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 I 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 J 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 K 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndA")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 L 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 M 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 N 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndB")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 O 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 P 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 Q 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndC")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 R 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 S 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 T 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndD")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 U 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 V 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 W 1 Bright A_FireCustomMissile("OverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndE")
	TNT1 A 0 A_ReFire
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGH 1 A_ReFire("Hold")
	Goto Stopper
CaliberHold:
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingLoop",5,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAddLoop",6,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/WolgirHFire",1,1.0,1)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
        TNT1 A 0 A_ZoomFactor(0.955)

	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 I 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 J 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 K 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndA")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 L 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 M 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 N 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndB")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 O 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 P 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 Q 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndC")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 R 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 S 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 T 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndD")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 U 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 V 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 W 1 Bright A_FireCustomMissile("CaliberOverpowerShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("HoldEndE")
	TNT1 A 0 A_ReFire
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGH 1 A_ReFire
	Goto Stopper
HoldEndA:
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 CD 1
	Goto Stopper
HoldEndB:
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 GH 1
	Goto Stopper
HoldEndC:
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	Goto Stopper
HoldEndD:
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 HD 1
	Goto Stopper
HoldEndE:
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGCDEGH 1
	Goto Stopper
Stopper:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
	NGU3 EFGC 1 A_ReFire("Hold")
	NGU3 DEGH 1 A_ReFire("Hold")

	NGU3 EFGC 1 A_ReFire("Hold")
	NGU3 DEGH 2 A_ReFire("Hold")
	NGU3 EFGA 2 A_WeaponReady(WRF_NOBOB|WRF_NOSWITCH)
	Goto Ready
	
//Secondary
AltFire:
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStart",5)
	NGU3 BCD 3 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EF 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 GH 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGHEFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
AltHold:
	TNT1 A 0 A_GiveInventory("WallstormActive",1)
	TNT1 A 0 A_TakeInventory("OverwhelmingHealing",1)
	TNT1 A 0 A_JumpIfInventory("CaliberUpgrade",1,"AltCaliberHold")
	
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingLoop",5,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAddLoop",6,0.6,1)
	
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
        TNT1 A 0 A_ZoomFactor(0.955)

	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 I 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 J 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 K 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndA")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 L 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 M 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 N 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndB")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 O 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 P 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 Q 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndC")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 R 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 S 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 T 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndD")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 U 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 V 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("WallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 W 1 Bright A_FireCustomMissile("WallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndE")
	TNT1 A 0 A_ReFire
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGH 1 A_ReFire("AltHold")
	Goto AltStopper
AltCaliberHold:
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingLoop",5,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAddLoop",6,0.6,1)
	TNT1 A 0 A_PlaySound("Weapons/WolgirHFire",1,1.0,1)
	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
        TNT1 A 0 A_ZoomFactor(0.955)

	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 I 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 J 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 K 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndA")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 L 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 M 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 N 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndB")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 O 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 P 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 Q 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndC")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 R 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 S 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 T 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndD")

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_Recoil(2.2)
	TNT1 A 0 A_Quake(4,3,0,32,none)
	TNT1 A 0 ACS_Execute(851,0,35,9+random(6,1),0)
	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 U 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 V 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_GiveInventory("BooletCasing")
	TNT1 A 0 A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),0,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))
	NGU3 W 1 Bright A_FireCustomMissile("CaliberWallstormShot",0.01*random(500,-500),1,9+random(3,-3),random(1,-1),0,0.01*random(-200,200))

	TNT1 A 0 A_JumpIfNoAmmo("AltHoldEndE")
	TNT1 A 0 A_ReFire
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGH 1 A_ReFire
	Goto AltStopper
AltHoldEndA:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 CD 1 A_ReFire("AltHold")
	Goto AltStopper
AltHoldEndB:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 GH 1 A_ReFire("AltHold")
	Goto AltStopper
AltHoldEndC:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	Goto AltStopper
AltHoldEndD:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 HD 1 A_ReFire("AltHold")
	Goto AltStopper
AltHoldEndE:
	TNT1 A 0 A_TakeInventory("WallstormActive",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	NGU3 A 0 A_StopSound(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingStop",5,0.6)
	NGU3 FGCDEGH 1 A_ReFire("AltHold")
	Goto AltStopper
AltStopper:
	NGU3 EFGC 1 A_ReFire("AltHold")
	NGU3 DEGH 1 A_ReFire("AltHold")

	NGU3 EFGC 1 A_ReFire("AltHold")
	NGU3 DEGH 2 A_ReFire("AltHold")
	NGU3 EFGA 2 A_WeaponReady(WRF_NOBOB|WRF_NOSWITCH)
	Goto Ready
	
//Tertiary
StopCheck:
	TNT1 A 0 A_JumpIfInventory("BooletCasing",8,3)
	Goto ReloadHoldEnd
Reload:
	TNT1 A 0 A_JumpIfInventory("OverwhelmingHealing",1,"StopCheck")
	TNT1 A 0 A_JumpIfInventory("BooletCasing",8,1)
	Goto Ready
	TNT1 A 0 A_JumpIfInventory("OverwhelmingHealing",1,"ReloadHold")
	TNT1 A 0 A_GiveInventory("OverwhelmingHealing",1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAltUp",5,0.6)
	NGU3 BCD 3 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EF 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 GH 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGHEFGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
ReloadHold:
	TNT1 A 0 A_JumpIfInventory("BooletCasing",8,1)
	Goto ReloadHoldEnd
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAltLoop",5,0.6,1)
    TNT1 A 0 A_GiveInventory("OverwhelmBoost")
	TNT1 A 0 A_Quake(4,4,0,16,none)

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("Green",0.2,15)
	TNT1 A 0 A_RadiusGive("HealStreamItem",256,RGF_GIVESELF|RGF_PLAYERS,1)
	TNT1 A 0 A_RadiusGive("HealStreamDamager",256,RGF_MONSTERS,1)
	TNT1 A 0 A_TakeInventory("BooletCasing",2)
	TNT1 A 0 A_SpawnItemEx("PoweroverGLDEF",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("MinorHpFX", random(168,-168), random(168,-168), random(64,-24), 0, 0, 0.1*random(3,7), 0, 128, 0)
	NGU3 E 1 Bright

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("Green",0.2,15)
	TNT1 A 0 A_RadiusGive("HealStreamItem",256,RGF_GIVESELF|RGF_PLAYERS,1)
	TNT1 A 0 A_RadiusGive("HealStreamDamager",256,RGF_MONSTERS,1)
	TNT1 A 0 A_TakeInventory("BooletCasing",2)
	TNT1 A 0 A_SpawnItemEx("PoweroverGLDEF",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("MinorHpFX", random(168,-168), random(168,-168), random(64,-24), 0, 0, 0.1*random(3,7), 0, 128, 0)
	NGU3 F 1 Bright

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("Green",0.2,15)
	TNT1 A 0 A_RadiusGive("HealStreamItem",256,RGF_GIVESELF|RGF_PLAYERS,1)
	TNT1 A 0 A_RadiusGive("HealStreamDamager",256,RGF_MONSTERS,1)
	TNT1 A 0 A_TakeInventory("BooletCasing",2)
	TNT1 A 0 A_SpawnItemEx("PoweroverGLDEF",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("MinorHpFX", random(168,-168), random(168,-168), random(64,-24), 0, 0, 0.1*random(3,7), 0, 128, 0)
	NGU3 G 1 Bright

	TNT1 A 0 A_GunFlash
	TNT1 A 0 A_SetBlend("Green",0.2,15)
	TNT1 A 0 A_RadiusGive("HealStreamItem",256,RGF_GIVESELF|RGF_PLAYERS,1)
	TNT1 A 0 A_RadiusGive("HealStreamDamager",256,RGF_MONSTERS,1)
	TNT1 A 0 A_TakeInventory("BooletCasing",2)
	TNT1 A 0 A_SpawnItemEx("PoweroverGLDEF",0,0,0,0,0,0,0,128,0)
	TNT1 AAAA 0 A_SpawnItemEx("MinorHpFX", random(168,-168), random(168,-168), random(64,-24), 0, 0, 0.1*random(3,7), 0, 128, 0)
	NGU3 H 1 Bright

	NGU3 E 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB|WRF_ALLOWRELOAD)
    TNT1 A 0 A_ZoomFactor(1)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAltStop",5,0.6)
	NGU3 A 0 A_StopSound(6)
	NGU3 FGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB|WRF_ALLOWRELOAD)
	TNT1 A 0 A_TakeInventory("OverwhelmingHealing",1)
	Goto AltStopper
ReloadHoldEnd:
	TNT1 A 0 A_TakeInventory("OverwhelmingHealing",1)
    TNT1 A 0 A_ZoomFactor(1)
	NGU3 A 0 A_StopSound(6)
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingAltStop",5,0.6)
	NGU3 FGCDEGH 1
	Goto ReloadStopper
ReloadStopper:
	NGU3 EFGC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 DEGH 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)

	NGU3 EFGC 1 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 DEGH 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB)
	NGU3 EFGA 2 A_WeaponReady(WRF_NOFIRE|WRF_NOBOB|WRF_ALLOWRELOAD)
	Goto Ready
	
//Quaternary
Zoom:
	TNT1 A 0 A_PlaySound("Weapons/PowerOverwhelmingMode",6,0.8)
	TNT1 A 0 A_Quake(1,7,0,2,none)
	NGU3 A 0 A_JumpIfInventory("OverMode",1,"UnZoom")
	NGU3 A 0 A_GiveInventory("OverMode",1)
	NGU3 A 0 A_Print("Homing boolets mode on.")
	NGU3 A 15
	NGU3 A 10 A_Weaponready(WRF_NOSWITCH|WRF_NOBOB|WRF_NOSWITCH)
	Goto Ready
UnZoom:
	NGU3 A 0 A_TakeInventory("OverMode",1)
	NGU3 A 0 A_Print("Homing boolets mode off.")
	NGU3 A 15
	NGU3 A 10 A_Weaponready(WRF_NOSWITCH|WRF_NOBOB|WRF_NOSWITCH)
	Goto ready
Flash:
	TNT1 A 3 A_Light2
	TNT1 A 1 A_Light0
	Stop
}
}

actor OverMode : Inventory { Inventory.MaxAmount 1 }

actor OverpowerShot : FastProjectile
{
  Radius 11
  Height 8
  Speed 250
  Damage 7
  Projectile
  +RIPPER
  +THRUGHOST
  +EXPLODEONWATER
  +SEEKERMISSILE
  +DONTSEEKINVISIBLE
  +SCREENSEEKER
  Renderstyle Add
  DeathSound "weapons/larpaexp"
  Obituary "%o was power overwhelmed by %k."
  MissileType "OverpowerTrailer"
  MissileHeight 8
  Scale 0.1
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 0 A_ChangeVelocity (frandom(-5.5, 5.5), frandom(-5.5, 5.5), frandom(-2.75, 2.75), 0)
	TNT1 A 0 A_JumpIfInTargetInventory("OverMode",1,"HomerMode")
	10BA A 1 Bright
    loop
  HomerMode:
    10BA A 1 Bright A_SeekerMissile(9,14,SMF_LOOK|SMF_PRECISE,192,5)
    Goto Spawn
  Death:
    TNT1 A 0 A_JumpIfInTargetInventory("NukerUpgrade",1,"NukerDeath")
    TNT1 A 0 A_Explode(20,64,0)
    TNT1 A 0 A_SpawnItemEx("PelletExplode",0,0,0,0,0,0,0,128,0)
    TNT1 BCD 4
    stop
  NukerDeath:
    TNT1 A 0 A_Explode(40,96,0)
    TNT1 A 0 A_SpawnItemEx("NukerPelletExplode",0,0,0,0,0,0,0,128,0)
    TNT1 BCD 4
    stop
  }
}

actor CaliberOverpowerShot : OverpowerShot
{
	Damage 10
}

actor WallstormShot : OverpowerShot
{
  Speed 0
  States
  {
  Spawn:
    TNT1 A 0
    TNT1 A 1 A_JumpIfInTargetInventory("WallstormActive",1,"HoldIt")
    TNT1 A 0 A_ChangeFlag("NOBLOCKMAP",1)
	TNT1 A 0 A_SetPitch(-CallACS("Pitchfork Simulation"))
	//TNT1 A 0 A_SetSpeed(250.0) //Apparently that still doesn't fix the problem with applying velocity again... but fixes the problem with the seeker missile not having proper speed!
	TNT1 A 0 A_ChangeVelocity(cos(angle) * cos(pitch) * 250, sin(angle) * cos(pitch) * 250, sin(pitch) * 250, CVF_REPLACE)
  Objection:
	TNT1 A 0 A_JumpIfInTargetInventory("OverMode",1,"HomerMode")
	TNT1 A 0 A_ChangeVelocity (frandom(-5.5, 5.5), frandom(-5.5, 5.5), frandom(-2.75, 2.75), CVF_RELATIVE)
	10BA A 1 Bright
    loop
  HoldIt:
	10BA A 1 Bright A_Warp(AAPTR_TARGET,40+frandom(3.0,-3.0),frandom(-55.0,55.0),35+frandom(-20.0,25.0),frandom(25.5,-25.5),WARPF_INTERPOLATE|WARPF_STOP)
    Goto Spawn
  HomerMode:
	TNT1 A 0 A_ChangeVelocity (frandom(-5.5, 5.5), frandom(-5.5, 5.5), frandom(-2.75, 2.75), CVF_RELATIVE)
    10BA A 1 Bright A_SeekerMissile(9,14,SMF_LOOK|SMF_PRECISE,192,5)
    Goto Objection
  }
}

actor CaliberWallstormShot : OverpowerShot
{
	Damage 10
}

ACTOR OverpowerTrailer
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 AA 0 A_SpawnItemEx("OverpowerTrail",frandom(0.50,-0.50),frandom(0.50,-0.50),frandom(0.50,-0.50),frandom(0.1,-0.1),frandom(0.1,-0.1),frandom(0.1,-0.05),frandom(0.0,360.0),SXF_CLIENTSIDE,0)
	Stop
	}
}

ACTOR OverpowerTrail
{
	Radius 25
	Scale 0.09
	Alpha 0.25
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	Renderstyle Add
	States
	{
	Spawn:
	SMKE A 0
	SMKE A 0 A_Jump(255,2,4,6)
	SMKE AAAAAAAAAAAAAAAAAAAA 1 A_FadeOut(0.04)
	Stop
	}
}

//Alt-Fire
ACTOR OverwhelmBoost : PowerupGiver
{
	Inventory.Amount 1
	+INVENTORY.AUTOACTIVATE
	+INVENTORY.ALWAYSPICKUP
	powerup.duration 4
	Powerup.Type Speed
	States
	{
	Spawn:
	TNT1 A -1
	Stop
	}
}

Actor PoweroverGLDEF
{
	+NOINTERACTION
	+NOGRAVITY
	+CLIENTSIDEONLY
	States
	{
	Spawn:
	TNT1 A 2
	Stop
	}
}
